// import com.alibaba.druid.DbType;
// import com.alibaba.druid.sql.ast.expr.SQLIntegerExpr;
// import com.alibaba.druid.sql.ast.statement.SQLSelectQueryBlock;
// import com.alibaba.druid.sql.dialect.sqlserver.visitor.SQLServerASTVisitor;
// import com.alibaba.druid.sql.visitor.SQLASTVisitor;
#pragma once
#include "../../../ast/statement/SQLSelectQueryBlock.h"
#include "../../../../utils/common_ptr.h"

class SQLServerSelectQueryBlock : public SQLSelectQueryBlock
{
public:
  SQLServerTop_ptr top;

  SQLServerSelectQueryBlock();
  SHAREDOBJECT(SQLServerSelectQueryBlock);

  SQLServerTop_ptr getTop();

  void setTop(SQLServerTop_ptr top);

  void setTop(int rowCount);

  // @Override
  void accept0(SQLASTVisitor_ptr visitor) override;

  void accept0(SQLServerASTVisitor_ptr visitor);

  void limit(int rowCount, int offset);
};
